home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 46 / Amiga Format CD46 (1999-10-20)(Future Publishing)(GB)[!][issue 1999-12].iso / -in_the_mag- / reader_requests / scilab / demos / icse / lqv.ex < prev    next >
Text File  |  1999-09-16  |  3KB  |  76 lines

  1. //                     lqv.bas : demo de icse
  2. //  *************************************************************
  3. //
  4. //
  5. exec('icse.contexte');  // contexte
  6. //
  7. t0=0;    // instant initial
  8. tf=20;    // instant final
  9. dti=1;  // premier pas de temps
  10. dtf=1;  // second pas de temps
  11. ermx=1.d-6; // test d'arret absolu sur la valeur du second membre dans
  12.             // la resolution de l'etat
  13. iu=[0,0,1]; //  iu   :indications sur la structure du controle
  14.     //    iu(1)=1 si l'etat initial depend du controle constant,0 sinon
  15.     //    iu(2)=1 si l'etat initial depend du controle variable,0 sinon
  16.     //    iu(3)=1 si le second membre depend du controle constant,0 sinon
  17. nuc=5;      // nombre de parametres independants du temps
  18. nuv=1;      // nombre de parametres dependants du temps
  19. ilin=2;     // indicateur de linearite :
  20.        // 0 pour un systeme non affine
  21.        // 1 pour un systeme affine dont la partie lineaire n'est pas autonome
  22.        // ilin=2 pour un systeme affine dont la partie lineaire est autonome
  23. nti=10;    //nombre de pas de temps correspondant a dti (premier pas de temps)
  24. ntf=10;    // nombre de pas de temps correspondant a dtf (second pas de temps)
  25.             // si l'on utilise un seul pas de temps,on doit prendre ntf=0
  26. ny=4;       // dimension de l'etat a un instant donne
  27. nea=0;      // nombre d'equations algebriques (eventuellement nul)
  28. itmx=10;    // nombre maximal d'iterations dans la resolution de
  29.             // l'equation d'etat discrete a un pas de temps donne
  30. nex=1;      // nombre d'experiences effectuees
  31. nob=2;      // dimension du vecteur des mesures pour une experience donnee
  32.             // en un instant donne
  33. ntob=10;     // nombre d'instants de mesure pour une experience donnee
  34. ntobi=5;    // nombre d'instants de mesure correspondant a dti (premier
  35.             // pas de temps)
  36. //
  37. nu=nuc+nuv*(nti+ntf+1); // dimension du vecteur des parametres de controle
  38. //
  39. //  uc(1,nuc)          :controle constant
  40. uc=0*ones(1,nuc);
  41. //  uv(1,nuv*(nti+ntf+1)):controle variable
  42. if nuv>0, uv(1,nuv*(nti+ntf+1))=0; end;
  43. //  itu(1,nitu)        :tableau de travail entier reserve a
  44. //                      l'utilisateur
  45. itu=[0];
  46. //  dtu(1,ndtu)        :tableau de travail double precision reserve
  47. //                      a l'utilisateur
  48. dtu=[0];
  49. //
  50. //  y0(ny)             :etat initial
  51. //          (valeur arbitraire si iu(1) ou iu(2) est non nul)
  52. y0=ones(1,ny);
  53. //  tob(1,ntob)        :instants de mesure (compatibilite avec ntob
  54. //                      et ntobi)
  55. tob=2*(1:10);
  56. binf=-10*ones(1,nu);//  borne inf des parametres
  57. bsup= ones(1,nu);// borne sup des parametres
  58. //
  59. //  termes utiles pour une dynamique lineaire ou une observation quadratique
  60. b(1,ny)=0;          // terme constant d'une dynamique lineaire
  61. fy=0.1*ones(ny,ny);    // derivee de la dynamique par rapport a l'etat
  62. fu=ones(ny,nuc+nuv); // derivee de la dynamique par rapport au controle
  63. //
  64. obs(nob,ny)=0; // matrice d'observation
  65. obs=ones(nob,ny);
  66. //
  67. don=0*ones(1,nex*ntob*nob);
  68.  
  69. nap=20;     // nombre d'appels du simulateur
  70. imp=2;      // niveau de debug pour optim
  71. large=100;  // taille de nu au dela de laquelle on choisit un optimiseur
  72.        // pour les problemes de grande taille (alg='gc' dans l'appel de optim)
  73. //
  74. exec('icseinit.ex');
  75. [co,u,g,itv,dtv]=icse(u,'icsemc',nap,imp);
  76.